-- KEYS:
--  1: 评论数据Hash键
--  2: 一级评论集合键
--  3: 二级评论集合键
--  4: 评论总数键
-- ARGV:
--  1: 评论ID
--  2: 父评论ID (-1字符串表示一级评论)
--  3...N: 交替的field和value (field1, value1, field2, value2,...)
--  最后一个参数: 时间戳(用于ZSet排序)

-- 1. 存储评论数据（从ARGV[3]开始是交替的field和value）
local i = 3
while i < #ARGV do
    redis.call('HSET', KEYS[1], ARGV[i], ARGV[i+1])
    i = i + 2
end

-- 2. 更新评论总数
redis.call('INCR', KEYS[4])

-- 3. 处理评论层级关系
if ARGV[2] == "-1" then
    -- 一级评论: 添加到一级评论集合
    redis.call('SADD', KEYS[2], ARGV[1])
else
    -- 二级评论: 添加到父评论的子评论集合（按时间排序）
    redis.call('ZADD', KEYS[3], ARGV[#ARGV], ARGV[1])
end

-- 4. 返回成功标识
return 1
